<!doctype html>
<html lang="zh-CN" data-theme="light">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <meta name="generator" content="VuePress 2.0.0-rc.19" />
    <meta name="theme" content="VuePress Theme Hope 2.0.0-rc.64" />
    <style>
      :root {
        --vp-c-bg: #fff;
      }

      [data-theme="dark"] {
        --vp-c-bg: #1b1b1f;
      }

      html,
      body {
        background: var(--vp-c-bg);
      }
    </style>
    <script>
      const userMode = localStorage.getItem("vuepress-theme-hope-scheme");
      const systemDarkMode =
        window.matchMedia &&
        window.matchMedia("(prefers-color-scheme: dark)").matches;

      if (userMode === "dark" || (userMode !== "light" && systemDarkMode)) {
        document.documentElement.setAttribute("data-theme", "dark");
      }
    </script>
    <meta property="og:url" content="https://javaguide.cn/home.html"><meta property="og:site_name" content="JavaGuide"><meta property="og:title" content="JavaGuide（Java学习&面试指南）"><meta property="og:description" content="友情提示 面试专版：准备 Java 面试的小伙伴可以考虑面试专版： (质量很高，专为面试打造，配合 JavaGuide 食用)。 知识星球：专属面试小册/一对一交流/简历修改/专属求职指南，欢迎加入 （点击链接即可查看星球的详细介绍，一定确定自己真的需要再加入）。 使用建议 ：有水平的面试官都是顺着项目经历挖掘技术问题。一定不要死记硬背技术八股文！详细..."><meta property="og:type" content="article"><meta property="og:image" content="https://oss.javaguide.cn/xingqiu/xingqiu.png"><meta property="og:locale" content="zh-CN"><meta property="og:updated_time" content="2024-09-20T03:02:27.000Z"><meta property="article:modified_time" content="2024-09-20T03:02:27.000Z"><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"JavaGuide（Java学习&面试指南）","image":["https://oss.javaguide.cn/xingqiu/xingqiu.png","https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png","https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&type=Date","https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png"],"dateModified":"2024-09-20T03:02:27.000Z","author":[{"@type":"Person","name":"Guide","url":"https://javaguide.cn/article/"}]}</script><meta name="robots" content="all"><meta name="author" content="Guide"><meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Expires" content="0"><meta name="keywords" content="Java基础, 多线程, JVM, 虚拟机, 数据库, MySQL, Spring, Redis, MyBatis, 系统设计, 分布式, RPC, 高可用, 高并发"><meta name="description" content="「Java学习 + 面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试，首选 JavaGuide！"><meta name="apple-mobile-web-app-capable" content="yes"><script>var _hmt = _hmt || [];
        (lambda() {
          var hm = document.createElement("script");
          hm.src = "https://hm.baidu.com/hm.js?5dd2e8c97962d57b7b8fea1737c01743";
          var s = document.getElementsByTagName("script")[0]; 
          s.parentNode.insertBefore(hm, s);
        })();</script><link rel="alternate" type="application/atom+xml" href="https://javaguide.cn/atom.xml" title="JavaGuide Atom Feed"><link rel="alternate" type="application/json" href="https://javaguide.cn/feed.json" title="JavaGuide JSON Feed"><link rel="alternate" type="application/rss+xml" href="https://javaguide.cn/rss.xml" title="JavaGuide RSS Feed"><link rel="icon" href="/favicon.ico"><title>JavaGuide（Java学习&面试指南） | JavaGuide</title>
    <link rel="preload" href="/assets/style-BTJQP7F9.css" as="style"><link rel="stylesheet" href="/assets/style-BTJQP7F9.css">
    
    
  </head>
  <body>
    <div id="app"><!--[--><!--[--><!--[--><span tabindex="-1"></span><a href="#main-content" class="vp-skip-link sr-only">跳至主要內容</a><!--]--><!--[--><div class="theme-container external-link-icon pure has-toc" vp-container><!--[--><header id="navbar" class="vp-navbar" vp-navbar><div class="vp-navbar-start"><button type="button" class="vp-toggle-sidebar-button" title="Toggle Sidebar"><span class="icon"></span></button><!----><!--[--><a class="route-link vp-brand" href="/" aria-label="带我回家"><img class="vp-nav-logo" src="/logo.png" alt><!----><span class="vp-site-name hide-in-pad">JavaGuide</span></a><!--]--><!----></div><div class="vp-navbar-center"><!----><!--[--><nav class="vp-nav-links"><div class="vp-nav-item hide-in-mobile"><a class="route-link route-link-active auto-link" href="/home.html" aria-label="面试指南"><!--[--><span class="font-icon icon iconfont icon-java" style=""></span><!--]-->面试指南<!----></a></div><div class="vp-nav-item hide-in-mobile"><a class="route-link auto-link" href="/open-source-project/" aria-label="开源项目"><!--[--><span class="font-icon icon iconfont icon-github" style=""></span><!--]-->开源项目<!----></a></div><div class="vp-nav-item hide-in-mobile"><a class="route-link auto-link" href="/books/" aria-label="技术书籍"><!--[--><span class="font-icon icon iconfont icon-book" style=""></span><!--]-->技术书籍<!----></a></div><div class="vp-nav-item hide-in-mobile"><a class="route-link auto-link" href="/high-quality-technical-articles/" aria-label="程序人生"><!--[--><span class="font-icon icon iconfont icon-article" style=""></span><!--]-->程序人生<!----></a></div><div class="vp-nav-item hide-in-mobile"><div class="vp-dropdown-wrapper"><button type="button" class="vp-dropdown-title" aria-label="知识星球"><!--[--><span class="font-icon icon iconfont icon-planet" style=""></span>知识星球<!--]--><span class="arrow"></span><ul class="vp-dropdown"><li class="vp-dropdown-item"><a class="route-link auto-link" href="/about-the-author/zhishixingqiu-two-years.html" aria-label="星球介绍"><!--[--><span class="font-icon icon iconfont icon-about" style=""></span><!--]-->星球介绍<!----></a></li><li class="vp-dropdown-item"><a class="route-link auto-link" href="/zhuanlan/" aria-label="星球专属优质专栏"><!--[--><span class="font-icon icon iconfont icon-about" style=""></span><!--]-->星球专属优质专栏<!----></a></li><li class="vp-dropdown-item"><a class="auto-link external-link" href="https://www.yuque.com/snailclimb/rpkqw1/ncxpnfmlng08wlf1" aria-label="星球优质主题汇总" rel="noopener noreferrer" target="_blank"><!--[--><span class="font-icon icon iconfont icon-star" style=""></span><!--]-->星球优质主题汇总<!----></a></li></ul></button></div></div><div class="vp-nav-item hide-in-mobile"><div class="vp-dropdown-wrapper"><button type="button" class="vp-dropdown-title" aria-label="网站相关"><!--[--><span class="font-icon icon iconfont icon-about" style=""></span>网站相关<!--]--><span class="arrow"></span><ul class="vp-dropdown"><li class="vp-dropdown-item"><a class="route-link auto-link" href="/about-the-author/" aria-label="关于作者"><!--[--><span class="font-icon icon iconfont icon-zuozhe" style=""></span><!--]-->关于作者<!----></a></li><li class="vp-dropdown-item"><a class="route-link auto-link" href="/timeline/" aria-label="更新历史"><!--[--><span class="font-icon icon iconfont icon-history" style=""></span><!--]-->更新历史<!----></a></li></ul></button></div></div></nav><!--]--><!----></div><div class="vp-navbar-end"><!----><!--[--><!----><div class="vp-nav-item vp-action"><a class="vp-action-link" href="https://github.com/Snailclimb/JavaGuide" target="_blank" rel="noopener noreferrer" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="icon github-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="github icon" name="github" style="width:1.25rem;height:1.25rem;vertical-align:middle;"><path d="M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"></path></svg></a></div><div class="vp-nav-item hide-in-mobile"><button type="button" class="vp-color-mode-switch" id="color-mode-switch"><svg xmlns="http://www.w3.org/2000/svg" class="icon auto-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="auto icon" name="auto" style="display:block;"><path d="M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" class="icon dark-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="dark icon" name="dark" style="display:none;"><path d="M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" class="icon light-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="light icon" name="light" style="display:none;"><path d="M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"></path></svg></button></div><form class="search-box" role="search"><input type="search" placeholder="搜索" autocomplete="off" spellcheck="false" value><!----></form><!--]--><!----><button type="button" class="vp-toggle-navbar-button" aria-label="Toggle Navbar" aria-expanded="false" aria-controls="nav-screen"><span><span class="vp-top"></span><span class="vp-middle"></span><span class="vp-bottom"></span></span></button></div></header><!----><!--]--><!----><div class="toggle-sidebar-wrapper"><span class="arrow start"></span></div><aside id="sidebar" class="vp-sidebar" vp-sidebar><!----><ul class="vp-sidebar-links"><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-star" style=""></span><span class="vp-sidebar-title">必看</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-interview" style=""></span><span class="vp-sidebar-title">面试准备</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-java" style=""></span><span class="vp-sidebar-title">Java</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-computer" style=""></span><span class="vp-sidebar-title">计算机基础</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-database" style=""></span><span class="vp-sidebar-title">数据库</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-tool" style=""></span><span class="vp-sidebar-title">开发工具</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-component" style=""></span><span class="vp-sidebar-title">常用框架</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-design" style=""></span><span class="vp-sidebar-title">系统设计</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-distributed-network" style=""></span><span class="vp-sidebar-title">分布式</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-et-performance" style=""></span><span class="vp-sidebar-title">高性能</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><span class="font-icon icon iconfont icon-highavailable" style=""></span><span class="vp-sidebar-title">高可用</span><span class="vp-arrow end"></span></button><!----></section></li></ul><!----></aside><!--[--><!--[--><main id="main-content" class="vp-page"><!--[--><!----><!----><nav class="vp-breadcrumb disable"></nav><div class="vp-page-title"><h1><span class="font-icon icon iconfont icon-creative" style=""></span>JavaGuide（Java学习&amp;面试指南）</h1><div class="page-info"><span class="page-author-info" aria-label="作者"><svg xmlns="http://www.w3.org/2000/svg" class="icon author-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="author icon" name="author"><path d="M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"></path></svg><span><a class="page-author-item" href="https://javaguide.cn/article/" target="_blank" rel="noopener noreferrer">Guide</a></span><span property="author" content="Guide"></span></span><!----><!----><!----><span class="page-word-info" aria-label="字数"><svg xmlns="http://www.w3.org/2000/svg" class="icon word-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="word icon" name="word"><path d="M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"></path><path d="M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"></path></svg><span>约 3389 字</span><meta property="wordCount" content="3389"></span><span class="page-reading-time-info" aria-label="阅读时间"><svg xmlns="http://www.w3.org/2000/svg" class="icon timer-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="timer icon" name="timer"><path d="M799.387 122.15c4.402-2.978 7.38-7.897 7.38-13.463v-1.165c0-8.933-7.38-16.312-16.312-16.312H256.33c-8.933 0-16.311 7.38-16.311 16.312v1.165c0 5.825 2.977 10.874 7.637 13.592 4.143 194.44 97.22 354.963 220.201 392.763-122.204 37.542-214.893 196.511-220.2 389.397-4.661 5.049-7.638 11.651-7.638 19.03v5.825h566.49v-5.825c0-7.379-2.849-13.981-7.509-18.9-5.049-193.016-97.867-351.985-220.2-389.527 123.24-37.67 216.446-198.453 220.588-392.892zM531.16 450.445v352.632c117.674 1.553 211.787 40.778 211.787 88.676H304.097c0-48.286 95.149-87.382 213.728-88.676V450.445c-93.077-3.107-167.901-81.297-167.901-177.093 0-8.803 6.99-15.793 15.793-15.793 8.803 0 15.794 6.99 15.794 15.793 0 80.261 63.69 145.635 142.01 145.635s142.011-65.374 142.011-145.635c0-8.803 6.99-15.793 15.794-15.793s15.793 6.99 15.793 15.793c0 95.019-73.789 172.82-165.96 177.093z"></path></svg><span>大约 11 分钟</span><meta property="timeRequired" content="PT11M"></span></div><hr></div><div class="vp-toc-placeholder"><aside id="toc" vp-toc><!----><div class="vp-toc-header">此页内容<button type="button" class="print-button" title="打印"><svg xmlns="http://www.w3.org/2000/svg" class="icon print-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="print icon" name="print"><path d="M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"></path></svg></button><div class="arrow end"></div></div><div class="vp-toc-wrapper"><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#java">Java</a></li><li><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#基础">基础</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#集合">集合</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#io">IO</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#并发">并发</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#jvm-必看">JVM (必看 👍)</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#新特性">新特性</a></li><!----><!--]--></ul></li><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#计算机基础">计算机基础</a></li><li><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#操作系统">操作系统</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#网络">网络</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#数据结构">数据结构</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#算法">算法</a></li><!----><!--]--></ul></li><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#数据库">数据库</a></li><li><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#基础-1">基础</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#mysql">MySQL</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#redis">Redis</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#mongodb">MongoDB</a></li><!----><!--]--></ul></li><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#搜索引擎">搜索引擎</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#开发工具">开发工具</a></li><li><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#maven">Maven</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#gradle">Gradle</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#docker">Docker</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#git">Git</a></li><!----><!--]--></ul></li><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#系统设计">系统设计</a></li><li><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#基础-2">基础</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#常用框架">常用框架</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#安全">安全</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#定时任务">定时任务</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#web-实时消息推送">Web 实时消息推送</a></li><!----><!--]--></ul></li><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#分布式">分布式</a></li><li><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#理论-算法-协议">理论&amp;算法&amp;协议</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#rpc">RPC</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#zookeeper">ZooKeeper</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#api-网关">API 网关</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#分布式-id">分布式 ID</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#分布式锁">分布式锁</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#分布式事务">分布式事务</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#分布式配置中心">分布式配置中心</a></li><!----><!--]--></ul></li><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#高性能">高性能</a></li><li><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#数据库优化">数据库优化</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#负载均衡">负载均衡</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#cdn">CDN</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#消息队列">消息队列</a></li><!----><!--]--></ul></li><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#高可用">高可用</a></li><li><ul class="vp-toc-list"><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#冗余设计">冗余设计</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#限流">限流</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#降级-熔断">降级&amp;熔断</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#超时-重试">超时&amp;重试</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#集群">集群</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level3" href="#灾备设计和异地多活">灾备设计和异地多活</a></li><!----><!--]--></ul></li><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#star-趋势">Star 趋势</a></li><!----><!--]--><!--[--><li class="vp-toc-item"><a class="route-link vp-toc-link level2" href="#公众号">公众号</a></li><!----><!--]--></ul><div class="vp-toc-marker" style="top:-1.7rem;"></div></div><!----></aside></div><!----><div class="theme-hope-content" vp-content><div class="hint-container tip"><p class="hint-container-title">友情提示</p><ul><li><strong>面试专版</strong>：准备 Java 面试的小伙伴可以考虑面试专版：<strong><a class="route-link" href="/zhuanlan/java-mian-shi-zhi-bei.html">《Java 面试指北 》</a></strong> (质量很高，专为面试打造，配合 JavaGuide 食用)。</li><li><strong>知识星球</strong>：专属面试小册/一对一交流/简历修改/专属求职指南，欢迎加入 <strong><a class="route-link" href="/about-the-author/zhishixingqiu-two-years.html">JavaGuide 知识星球</a></strong>（点击链接即可查看星球的详细介绍，一定确定自己真的需要再加入）。</li><li><strong>使用建议</strong> ：有水平的面试官都是顺着项目经历挖掘技术问题。一定不要死记硬背技术八股文！详细的学习建议请参考：<a class="route-link" href="/javaguide/use-suggestion.html">JavaGuide 使用建议</a>。</li><li><strong>求个 Star</strong>：如果觉得 JavaGuide 的内容对你有帮助的话，还请点个免费的 Star，这是对我最大的鼓励，感谢各位一起同行，共勉！传送门：<a href="https://github.com/Snailclimb/JavaGuide" target="_blank" rel="noopener noreferrer">GitHub</a> | <a href="https://gitee.com/SnailClimb/JavaGuide" target="_blank" rel="noopener noreferrer">Gitee</a>。</li><li><strong>转载须知</strong>：以下所有文章如非文首说明为转载皆为 JavaGuide 原创，转载请在文首注明出处。如发现恶意抄袭/搬运，会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境！</li></ul></div><h2 id="java" tabindex="-1"><a class="header-anchor" href="#java"><span>Java</span></a></h2><h3 id="基础" tabindex="-1"><a class="header-anchor" href="#基础"><span>基础</span></a></h3><p><strong>知识点/面试题总结</strong> : (必看👍 )：</p><ul><li><a class="route-link" href="/java/basis/java-basic-questions-01.html">Java 基础常见知识点&amp;面试题总结(上)</a></li><li><a class="route-link" href="/java/basis/java-basic-questions-02.html">Java 基础常见知识点&amp;面试题总结(中)</a></li><li><a class="route-link" href="/java/basis/java-basic-questions-03.html">Java 基础常见知识点&amp;面试题总结(下)</a></li></ul><p><strong>重要知识点详解</strong>：</p><ul><li><a class="route-link" href="/java/basis/why-there-only-value-passing-in-java.html">为什么 Java 中只有值传递？</a></li><li><a class="route-link" href="/java/basis/serialization.html">Java 序列化详解</a></li><li><a class="route-link" href="/java/basis/generics-and-wildcards.html">泛型&amp;通配符详解</a></li><li><a class="route-link" href="/java/basis/reflection.html">Java 反射机制详解</a></li><li><a class="route-link" href="/java/basis/proxy.html">Java 代理模式详解</a></li><li><a class="route-link" href="/java/basis/bigdecimal.html">BigDecimal 详解</a></li><li><a class="route-link" href="/java/basis/unsafe.html">Java 魔法类 Unsafe 详解</a></li><li><a class="route-link" href="/java/basis/spi.html">Java SPI 机制详解</a></li><li><a class="route-link" href="/java/basis/syntactic-sugar.html">Java 语法糖详解</a></li></ul><h3 id="集合" tabindex="-1"><a class="header-anchor" href="#集合"><span>集合</span></a></h3><p><strong>知识点/面试题总结</strong>：</p><ul><li><a class="route-link" href="/java/collection/java-collection-questions-01.html">Java 集合常见知识点&amp;面试题总结(上)</a> (必看 👍)</li><li><a class="route-link" href="/java/collection/java-collection-questions-02.html">Java 集合常见知识点&amp;面试题总结(下)</a> (必看 👍)</li><li><a class="route-link" href="/java/collection/java-collection-precautions-for-use.html">Java 集合使用注意事项总结</a></li></ul><p><strong>源码分析</strong>：</p><ul><li><a class="route-link" href="/java/collection/arraylist-source-code.html">ArrayList 核心源码+扩容机制分析</a></li><li><a class="route-link" href="/java/collection/linkedlist-source-code.html">LinkedList 核心源码分析</a></li><li><a class="route-link" href="/java/collection/hashmap-source-code.html">HashMap 核心源码+底层数据结构分析</a></li><li><a class="route-link" href="/java/collection/concurrent-hash-map-source-code.html">ConcurrentHashMap 核心源码+底层数据结构分析</a></li><li><a class="route-link" href="/java/collection/linkedhashmap-source-code.html">LinkedHashMap 核心源码分析</a></li><li><a class="route-link" href="/java/collection/copyonwritearraylist-source-code.html">CopyOnWriteArrayList 核心源码分析</a></li><li><a class="route-link" href="/java/collection/arrayblockingqueue-source-code.html">ArrayBlockingQueue 核心源码分析</a></li><li><a class="route-link" href="/java/collection/priorityqueue-source-code.html">PriorityQueue 核心源码分析</a></li><li><a class="route-link" href="/java/collection/priorityqueue-source-code.html">DelayQueue 核心源码分析</a></li></ul><h3 id="io" tabindex="-1"><a class="header-anchor" href="#io"><span>IO</span></a></h3><ul><li><a class="route-link" href="/java/io/io-basis.html">IO 基础知识总结</a></li><li><a class="route-link" href="/java/io/io-design-patterns.html">IO 设计模式总结</a></li><li><a class="route-link" href="/java/io/io-model.html">IO 模型详解</a></li><li><a class="route-link" href="/java/io/nio-basis.html">NIO 核心知识总结</a></li></ul><h3 id="并发" tabindex="-1"><a class="header-anchor" href="#并发"><span>并发</span></a></h3><p><strong>知识点/面试题总结</strong> : (必看 👍)</p><ul><li><a class="route-link" href="/java/concurrent/java-concurrent-questions-01.html">Java 并发常见知识点&amp;面试题总结（上）</a></li><li><a class="route-link" href="/java/concurrent/java-concurrent-questions-02.html">Java 并发常见知识点&amp;面试题总结（中）</a></li><li><a class="route-link" href="/java/concurrent/java-concurrent-questions-03.html">Java 并发常见知识点&amp;面试题总结（下）</a></li></ul><p><strong>重要知识点详解</strong>：</p><ul><li><a class="route-link" href="/java/concurrent/jmm.html">乐观锁和悲观锁详解</a></li><li><a class="route-link" href="/java/concurrent/cas.html">CAS 详解</a></li><li><a class="route-link" href="/java/concurrent/jmm.html">JMM（Java 内存模型）详解</a></li><li><strong>线程池</strong>：<a class="route-link" href="/java/concurrent/java-thread-pool-summary.html">Java 线程池详解</a>、<a class="route-link" href="/java/concurrent/java-thread-pool-best-practices.html">Java 线程池最佳实践</a></li><li><a class="route-link" href="/java/concurrent/threadlocal.html">ThreadLocal 详解</a></li><li><a class="route-link" href="/java/concurrent/java-concurrent-collections.html">Java 并发容器总结</a></li><li><a class="route-link" href="/java/concurrent/atomic-classes.html">Atomic 原子类总结</a></li><li><a class="route-link" href="/java/concurrent/aqs.html">AQS 详解</a></li><li><a class="route-link" href="/java/concurrent/completablefuture-intro.html">CompletableFuture 详解</a></li></ul><h3 id="jvm-必看" tabindex="-1"><a class="header-anchor" href="#jvm-必看"><span>JVM (必看 👍)</span></a></h3><p>JVM 这部分内容主要参考 <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/index.html" target="_blank" rel="noopener noreferrer">JVM 虚拟机规范-Java8</a> 和周志明老师的<a href="https://book.douban.com/subject/34907497/" target="_blank" rel="noopener noreferrer">《深入理解 Java 虚拟机（第 3 版）》</a> （强烈建议阅读多遍！）。</p><ul><li><strong><a class="route-link" href="/java/jvm/memory-area.html">Java 内存区域</a></strong></li><li><strong><a class="route-link" href="/java/jvm/jvm-garbage-collection.html">JVM 垃圾回收</a></strong></li><li><a class="route-link" href="/java/jvm/class-file-structure.html">类文件结构</a></li><li><strong><a class="route-link" href="/java/jvm/class-loading-process.html">类加载过程</a></strong></li><li><a class="route-link" href="/java/jvm/classloader.html">类加载器</a></li><li><a class="route-link" href="/java/jvm/jvm-parameters-intro.html">【待完成】最重要的 JVM 参数总结（翻译完善了一半）</a></li><li><a class="route-link" href="/java/jvm/jvm-intro.html">【加餐】大白话带你认识 JVM</a></li><li><a class="route-link" href="/java/jvm/jdk-monitoring-and-troubleshooting-tools.html">JDK 监控和故障处理工具</a></li></ul><h3 id="新特性" tabindex="-1"><a class="header-anchor" href="#新特性"><span>新特性</span></a></h3><ul><li><strong>Java 8</strong>：<a class="route-link" href="/java/new-features/java8-tutorial-translate.html">Java 8 新特性总结（翻译）</a>、<a class="route-link" href="/java/new-features/java8-common-new-features.html">Java8 常用新特性总结</a></li><li><a class="route-link" href="/java/new-features/java9.html">Java 9 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java10.html">Java 10 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java11.html">Java 11 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java12-13.html">Java 12 &amp; 13 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java14-15.html">Java 14 &amp; 15 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java16.html">Java 16 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java17.html">Java 17 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java18.html">Java 18 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java19.html">Java 19 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java20.html">Java 20 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java21.html">Java 21 新特性概览</a></li><li><a class="route-link" href="/java/new-features/java22-23.html">Java 22 &amp; 23 新特性概览</a></li></ul><h2 id="计算机基础" tabindex="-1"><a class="header-anchor" href="#计算机基础"><span>计算机基础</span></a></h2><h3 id="操作系统" tabindex="-1"><a class="header-anchor" href="#操作系统"><span>操作系统</span></a></h3><ul><li><a class="route-link" href="/cs-basics/operating-system/operating-system-basic-questions-01.html">操作系统常见知识点&amp;面试题总结(上)</a></li><li><a class="route-link" href="/cs-basics/operating-system/operating-system-basic-questions-02.html">操作系统常见知识点&amp;面试题总结(下)</a></li><li><strong>Linux</strong>： <ul><li><a class="route-link" href="/cs-basics/operating-system/linux-intro.html">后端程序员必备的 Linux 基础知识总结</a></li><li><a class="route-link" href="/cs-basics/operating-system/shell-intro.html">Shell 编程基础知识总结</a></li></ul></li></ul><h3 id="网络" tabindex="-1"><a class="header-anchor" href="#网络"><span>网络</span></a></h3><p><strong>知识点/面试题总结</strong>：</p><ul><li><a class="route-link" href="/cs-basics/network/other-network-questions.html">计算机网络常见知识点&amp;面试题总结(上)</a></li><li><a class="route-link" href="/cs-basics/network/other-network-questions2.html">计算机网络常见知识点&amp;面试题总结(下)</a></li><li><a class="route-link" href="/cs-basics/network/computer-network-xiexiren-summary.html">谢希仁老师的《计算机网络》内容总结（补充）</a></li></ul><p><strong>重要知识点详解</strong>：</p><ul><li><a class="route-link" href="/cs-basics/network/osi-and-tcp-ip-model.html">OSI 和 TCP/IP 网络分层模型详解（基础）</a></li><li><a class="route-link" href="/cs-basics/network/application-layer-protocol.html">应用层常见协议总结（应用层）</a></li><li><a class="route-link" href="/cs-basics/network/http-vs-https.html">HTTP vs HTTPS（应用层）</a></li><li><a class="route-link" href="/cs-basics/network/http1.0-vs-http1.1.html">HTTP 1.0 vs HTTP 1.1（应用层）</a></li><li><a class="route-link" href="/cs-basics/network/http-status-codes.html">HTTP 常见状态码（应用层）</a></li><li><a class="route-link" href="/cs-basics/network/dns.html">DNS 域名系统详解（应用层）</a></li><li><a class="route-link" href="/cs-basics/network/tcp-connection-and-disconnection.html">TCP 三次握手和四次挥手（传输层）</a></li><li><a class="route-link" href="/cs-basics/network/tcp-reliability-guarantee.html">TCP 传输可靠性保障（传输层）</a></li><li><a class="route-link" href="/cs-basics/network/arp.html">ARP 协议详解(网络层)</a></li><li><a class="route-link" href="/cs-basics/network/nat.html">NAT 协议详解(网络层)</a></li><li><a class="route-link" href="/cs-basics/network/network-attack-means.html">网络攻击常见手段总结（安全）</a></li></ul><h3 id="数据结构" tabindex="-1"><a class="header-anchor" href="#数据结构"><span>数据结构</span></a></h3><p><strong>图解数据结构：</strong></p><ul><li><a class="route-link" href="/cs-basics/data-structure/linear-data-structure.html">线性数据结构 :数组、链表、栈、队列</a></li><li><a class="route-link" href="/cs-basics/data-structure/graph.html">图</a></li><li><a class="route-link" href="/cs-basics/data-structure/heap.html">堆</a></li><li><a class="route-link" href="/cs-basics/data-structure/tree.html">树</a>：重点关注<a class="route-link" href="/cs-basics/data-structure/red-black-tree.html">红黑树</a>、B-，B+，B*树、LSM 树</li></ul><p>其他常用数据结构：</p><ul><li><a class="route-link" href="/cs-basics/data-structure/bloom-filter.html">布隆过滤器</a></li></ul><h3 id="算法" tabindex="-1"><a class="header-anchor" href="#算法"><span>算法</span></a></h3><p>算法这部分内容非常重要，如果你不知道如何学习算法的话，可以看下我写的：</p><ul><li><a href="https://www.zhihu.com/question/323359308/answer/1545320858" target="_blank" rel="noopener noreferrer">算法学习书籍+资源推荐</a> 。</li><li><a href="https://www.zhihu.com/question/31092580/answer/1534887374" target="_blank" rel="noopener noreferrer">如何刷 Leetcode?</a></li></ul><p><strong>常见算法问题总结</strong>：</p><ul><li><a class="route-link" href="/cs-basics/algorithms/string-algorithm-problems.html">几道常见的字符串算法题总结</a></li><li><a class="route-link" href="/cs-basics/algorithms/linkedlist-algorithm-problems.html">几道常见的链表算法题总结</a></li><li><a class="route-link" href="/cs-basics/algorithms/the-sword-refers-to-offer.html">剑指 offer 部分编程题</a></li><li><a class="route-link" href="/cs-basics/algorithms/10-classical-sorting-algorithms.html">十大经典排序算法</a></li></ul><p>另外，<a href="https://www.geeksforgeeks.org/fundamentals-of-algorithms/" target="_blank" rel="noopener noreferrer">GeeksforGeeks</a> 这个网站总结了常见的算法 ，比较全面系统。</p><p><a class="route-link" href="/about-the-author/zhishixingqiu-two-years.html"><img src="https://oss.javaguide.cn/xingqiu/xingqiu.png" alt="Banner"></a></p><h2 id="数据库" tabindex="-1"><a class="header-anchor" href="#数据库"><span>数据库</span></a></h2><h3 id="基础-1" tabindex="-1"><a class="header-anchor" href="#基础-1"><span>基础</span></a></h3><ul><li><a class="route-link" href="/database/basis.html">数据库基础知识总结</a></li><li><a class="route-link" href="/database/nosql.html">NoSQL 基础知识总结</a></li><li><a class="route-link" href="/database/character-set.html">字符集详解</a></li><li>SQL : <ul><li><a class="route-link" href="/database/sql/sql-syntax-summary.html">SQL 语法基础知识总结</a></li><li><a class="route-link" href="/database/sql/sql-questions-01.html">SQL 常见面试题总结</a></li></ul></li></ul><h3 id="mysql" tabindex="-1"><a class="header-anchor" href="#mysql"><span>MySQL</span></a></h3><p><strong>知识点/面试题总结：</strong></p><ul><li><strong><a class="route-link" href="/database/mysql/mysql-questions-01.html">MySQL 常见知识点&amp;面试题总结</a></strong> (必看 👍)</li><li><a class="route-link" href="/database/mysql/mysql-high-performance-optimization-specification-recommendations.html">MySQL 高性能优化规范建议总结</a></li></ul><p><strong>重要知识点：</strong></p><ul><li><a class="route-link" href="/database/mysql/mysql-index.html">MySQL 索引详解</a></li><li><a class="route-link" href="/database/mysql/transaction-isolation-level.html">MySQL 事务隔离级别图文详解)</a></li><li><a class="route-link" href="/database/mysql/mysql-logs.html">MySQL 三大日志(binlog、redo log 和 undo log)详解</a></li><li><a class="route-link" href="/database/mysql/innodb-implementation-of-mvcc.html">InnoDB 存储引擎对 MVCC 的实现</a></li><li><a class="route-link" href="/database/mysql/how-sql-executed-in-mysql.html">SQL 语句在 MySQL 中的执行过程</a></li><li><a class="route-link" href="/database/mysql/mysql-query-cache.html">MySQL 查询缓存详解</a></li><li><a class="route-link" href="/database/mysql/mysql-query-execution-plan.html">MySQL 执行计划分析</a></li><li><a class="route-link" href="/database/mysql/mysql-auto-increment-primary-key-continuous.html">MySQL 自增主键一定是连续的吗</a></li><li><a class="route-link" href="/database/mysql/some-thoughts-on-database-storage-time.html">MySQL 时间类型数据存储建议</a></li><li><a class="route-link" href="/database/mysql/index-invalidation-caused-by-implicit-conversion.html">MySQL 隐式转换造成索引失效</a></li></ul><h3 id="redis" tabindex="-1"><a class="header-anchor" href="#redis"><span>Redis</span></a></h3><p><strong>知识点/面试题总结</strong> : (必看👍 )：</p><ul><li><a class="route-link" href="/database/redis/redis-questions-01.html">Redis 常见知识点&amp;面试题总结(上)</a></li><li><a class="route-link" href="/database/redis/redis-questions-02.html">Redis 常见知识点&amp;面试题总结(下)</a></li></ul><p><strong>重要知识点：</strong></p><ul><li><a class="route-link" href="/database/redis/3-commonly-used-cache-read-and-write-strategies.html">3 种常用的缓存读写策略详解</a></li><li><a class="route-link" href="/database/redis/redis-data-structures-01.html">Redis 5 种基本数据结构详解</a></li><li><a class="route-link" href="/database/redis/redis-data-structures-02.html">Redis 3 种特殊数据结构详解</a></li><li><a class="route-link" href="/database/redis/redis-persistence.html">Redis 持久化机制详解</a></li><li><a class="route-link" href="/database/redis/redis-memory-fragmentation.html">Redis 内存碎片详解</a></li><li><a class="route-link" href="/database/redis/redis-common-blocking-problems-summary.html">Redis 常见阻塞原因总结</a></li><li><a class="route-link" href="/database/redis/redis-cluster.html">Redis 集群详解</a></li></ul><h3 id="mongodb" tabindex="-1"><a class="header-anchor" href="#mongodb"><span>MongoDB</span></a></h3><ul><li><a class="route-link" href="/database/mongodb/mongodb-questions-01.html">MongoDB 常见知识点&amp;面试题总结(上)</a></li><li><a class="route-link" href="/database/mongodb/mongodb-questions-02.html">MongoDB 常见知识点&amp;面试题总结(下)</a></li></ul><h2 id="搜索引擎" tabindex="-1"><a class="header-anchor" href="#搜索引擎"><span>搜索引擎</span></a></h2><p><a class="route-link" href="/database/elasticsearch/elasticsearch-questions-01.html">Elasticsearch 常见面试题总结(付费)</a></p><p><img src="https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png" alt="JavaGuide 官方公众号"></p><h2 id="开发工具" tabindex="-1"><a class="header-anchor" href="#开发工具"><span>开发工具</span></a></h2><h3 id="maven" tabindex="-1"><a class="header-anchor" href="#maven"><span>Maven</span></a></h3><ul><li><a class="route-link" href="/tools/maven/maven-core-concepts.html">Maven 核心概念总结</a></li><li><a class="route-link" href="/tools/maven/maven-best-practices.html">Maven 最佳实践</a></li></ul><h3 id="gradle" tabindex="-1"><a class="header-anchor" href="#gradle"><span>Gradle</span></a></h3><p><a class="route-link" href="/tools/gradle/gradle-core-concepts.html">Gradle 核心概念总结</a>（可选，目前国内还是使用 Maven 普遍一些）</p><h3 id="docker" tabindex="-1"><a class="header-anchor" href="#docker"><span>Docker</span></a></h3><ul><li><a class="route-link" href="/tools/docker/docker-intro.html">Docker 核心概念总结</a></li><li><a class="route-link" href="/tools/docker/docker-in-action.html">Docker 实战</a></li></ul><h3 id="git" tabindex="-1"><a class="header-anchor" href="#git"><span>Git</span></a></h3><ul><li><a class="route-link" href="/tools/git/git-intro.html">Git 核心概念总结</a></li><li><a class="route-link" href="/tools/git/github-tips.html">GitHub 实用小技巧总结</a></li></ul><h2 id="系统设计" tabindex="-1"><a class="header-anchor" href="#系统设计"><span>系统设计</span></a></h2><ul><li><a class="route-link" href="/system-design/system-design-questions.html">系统设计常见面试题总结</a></li><li><a class="route-link" href="/system-design/design-pattern.html">设计模式常见面试题总结</a></li></ul><h3 id="基础-2" tabindex="-1"><a class="header-anchor" href="#基础-2"><span>基础</span></a></h3><ul><li><a class="route-link" href="/system-design/basis/RESTfulAPI.html">RestFul API 简明教程</a></li><li><a class="route-link" href="/system-design/basis/software-engineering.html">软件工程简明教程简明教程</a></li><li><a class="route-link" href="/system-design/basis/naming.html">代码命名指南</a></li><li><a class="route-link" href="/system-design/basis/refactoring.html">代码重构指南</a></li><li><a class="route-link" href="/system-design/basis/unit-test.html">单元测试指南</a></li></ul><h3 id="常用框架" tabindex="-1"><a class="header-anchor" href="#常用框架"><span>常用框架</span></a></h3><h4 id="spring-springboot-必看" tabindex="-1"><a class="header-anchor" href="#spring-springboot-必看"><span>Spring/SpringBoot (必看 👍)</span></a></h4><p><strong>知识点/面试题总结</strong> :</p><ul><li><a class="route-link" href="/system-design/framework/spring/spring-knowledge-and-questions-summary.html">Spring 常见知识点&amp;面试题总结</a></li><li><a class="route-link" href="/system-design/framework/spring/springboot-knowledge-and-questions-summary.html">SpringBoot 常见知识点&amp;面试题总结</a></li><li><a class="route-link" href="/system-design/framework/spring/spring-common-annotations.html">Spring/Spring Boot 常用注解总结</a></li><li><a href="https://github.com/Snailclimb/springboot-guide" target="_blank" rel="noopener noreferrer">SpringBoot 入门指南</a></li></ul><p><strong>重要知识点详解</strong>：</p><ul><li><a class="route-link" href="/system-design/framework/spring/ioc-and-aop.html">IoC &amp; AOP 详解（快速搞懂）</a></li><li><a class="route-link" href="/system-design/framework/spring/spring-transaction.html">Spring 事务详解</a></li><li><a class="route-link" href="/system-design/framework/spring/spring-design-patterns-summary.html">Spring 中的设计模式详解</a></li><li><a class="route-link" href="/system-design/framework/spring/spring-boot-auto-assembly-principles.html">SpringBoot 自动装配原理详解</a></li></ul><h4 id="mybatis" tabindex="-1"><a class="header-anchor" href="#mybatis"><span>MyBatis</span></a></h4><p><a class="route-link" href="/system-design/framework/mybatis/mybatis-interview.html">MyBatis 常见面试题总结</a></p><h3 id="安全" tabindex="-1"><a class="header-anchor" href="#安全"><span>安全</span></a></h3><h4 id="认证授权" tabindex="-1"><a class="header-anchor" href="#认证授权"><span>认证授权</span></a></h4><ul><li><a class="route-link" href="/system-design/security/basis-of-authority-certification.html">认证授权基础概念详解</a></li><li><a class="route-link" href="/system-design/security/jwt-intro.html">JWT 基础概念详解</a></li><li><a class="route-link" href="/system-design/security/advantages-and-disadvantages-of-jwt.html">JWT 优缺点分析以及常见问题解决方案</a></li><li><a class="route-link" href="/system-design/security/sso-intro.html">SSO 单点登录详解</a></li><li><a class="route-link" href="/system-design/security/design-of-authority-system.html">权限系统设计详解</a></li><li><a class="route-link" href="/system-design/security/encryption-algorithms.html">常见加密算法总结</a></li></ul><h4 id="数据脱敏" tabindex="-1"><a class="header-anchor" href="#数据脱敏"><span>数据脱敏</span></a></h4><p>数据脱敏说的就是我们根据特定的规则对敏感信息数据进行变形，比如我们把手机号、身份证号某些位数使用 * 来代替。</p><h4 id="敏感词过滤" tabindex="-1"><a class="header-anchor" href="#敏感词过滤"><span>敏感词过滤</span></a></h4><p><a class="route-link" href="/system-design/security/sentive-words-filter.html">敏感词过滤方案总结</a></p><h3 id="定时任务" tabindex="-1"><a class="header-anchor" href="#定时任务"><span>定时任务</span></a></h3><p><a class="route-link" href="/system-design/schedule-task.html">Java 定时任务详解</a></p><h3 id="web-实时消息推送" tabindex="-1"><a class="header-anchor" href="#web-实时消息推送"><span>Web 实时消息推送</span></a></h3><p><a class="route-link" href="/system-design/web-real-time-message-push.html">Web 实时消息推送详解</a></p><h2 id="分布式" tabindex="-1"><a class="header-anchor" href="#分布式"><span>分布式</span></a></h2><h3 id="理论-算法-协议" tabindex="-1"><a class="header-anchor" href="#理论-算法-协议"><span>理论&amp;算法&amp;协议</span></a></h3><ul><li><a class="route-link" href="/distributed-system/protocol/cap-and-base-theorem.html">CAP 理论和 BASE 理论解读</a></li><li><a class="route-link" href="/distributed-system/protocol/paxos-algorithm.html">Paxos 算法解读</a></li><li><a class="route-link" href="/distributed-system/protocol/raft-algorithm.html">Raft 算法解读</a></li><li><a class="route-link" href="/distributed-system/protocol/gossip-protocl.html">Gossip 协议详解</a></li></ul><h3 id="rpc" tabindex="-1"><a class="header-anchor" href="#rpc"><span>RPC</span></a></h3><ul><li><a class="route-link" href="/distributed-system/rpc/rpc-intro.html">RPC 基础知识总结</a></li><li><a class="route-link" href="/distributed-system/rpc/dubbo.html">Dubbo 常见知识点&amp;面试题总结</a></li></ul><h3 id="zookeeper" tabindex="-1"><a class="header-anchor" href="#zookeeper"><span>ZooKeeper</span></a></h3><blockquote><p>这两篇文章可能有内容重合部分，推荐都看一遍。</p></blockquote><ul><li><a class="route-link" href="/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.html">ZooKeeper 相关概念总结(入门)</a></li><li><a class="route-link" href="/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.html">ZooKeeper 相关概念总结(进阶)</a></li></ul><h3 id="api-网关" tabindex="-1"><a class="header-anchor" href="#api-网关"><span>API 网关</span></a></h3><ul><li><a class="route-link" href="/distributed-system/api-gateway.html">API 网关基础知识总结</a></li><li><a class="route-link" href="/distributed-system/spring-cloud-gateway-questions.html">Spring Cloud Gateway 常见知识点&amp;面试题总结</a></li></ul><h3 id="分布式-id" tabindex="-1"><a class="header-anchor" href="#分布式-id"><span>分布式 ID</span></a></h3><ul><li><a class="route-link" href="/distributed-system/distributed-id.html">分布式 ID 常见知识点&amp;面试题总结</a></li><li><a class="route-link" href="/distributed-system/distributed-id-design.html">分布式 ID 设计指南</a></li></ul><h3 id="分布式锁" tabindex="-1"><a class="header-anchor" href="#分布式锁"><span>分布式锁</span></a></h3><ul><li><a href="https://javaguide.cn/distributed-system/distributed-lock.html" target="_blank" rel="noopener noreferrer">分布式锁介绍</a></li><li><a href="https://javaguide.cn/distributed-system/distributed-lock-implementations.html" target="_blank" rel="noopener noreferrer">分布式锁常见实现方案总结</a></li></ul><h3 id="分布式事务" tabindex="-1"><a class="header-anchor" href="#分布式事务"><span>分布式事务</span></a></h3><p><a class="route-link" href="/distributed-system/distributed-transaction.html">分布式事务常见知识点&amp;面试题总结</a></p><h3 id="分布式配置中心" tabindex="-1"><a class="header-anchor" href="#分布式配置中心"><span>分布式配置中心</span></a></h3><p><a class="route-link" href="/distributed-system/distributed-configuration-center.html">分布式配置中心常见知识点&amp;面试题总结</a></p><h2 id="高性能" tabindex="-1"><a class="header-anchor" href="#高性能"><span>高性能</span></a></h2><h3 id="数据库优化" tabindex="-1"><a class="header-anchor" href="#数据库优化"><span>数据库优化</span></a></h3><ul><li><a class="route-link" href="/high-performance/read-and-write-separation-and-library-subtable.html">数据库读写分离和分库分表</a></li><li><a class="route-link" href="/high-performance/data-cold-hot-separation.html">数据冷热分离</a></li><li><a class="route-link" href="/high-performance/sql-optimization.html">常见 SQL 优化手段总结</a></li><li><a class="route-link" href="/high-performance/deep-pagination-optimization.html">深度分页介绍及优化建议</a></li></ul><h3 id="负载均衡" tabindex="-1"><a class="header-anchor" href="#负载均衡"><span>负载均衡</span></a></h3><p><a class="route-link" href="/high-performance/load-balancing.html">负载均衡常见知识点&amp;面试题总结</a></p><h3 id="cdn" tabindex="-1"><a class="header-anchor" href="#cdn"><span>CDN</span></a></h3><p><a class="route-link" href="/high-performance/cdn.html">CDN（内容分发网络）常见知识点&amp;面试题总结</a></p><h3 id="消息队列" tabindex="-1"><a class="header-anchor" href="#消息队列"><span>消息队列</span></a></h3><ul><li><a class="route-link" href="/high-performance/message-queue/message-queue.html">消息队列基础知识总结</a></li><li><a class="route-link" href="/high-performance/message-queue/disruptor-questions.html">Disruptor 常见知识点&amp;面试题总结</a></li><li><a class="route-link" href="/high-performance/message-queue/rabbitmq-questions.html">RabbitMQ 常见知识点&amp;面试题总结</a></li><li><a class="route-link" href="/high-performance/message-queue/rocketmq-questions.html">RocketMQ 常见知识点&amp;面试题总结</a></li><li><a class="route-link" href="/high-performance/message-queue/kafka-questions-01.html">Kafka 常常见知识点&amp;面试题总结</a></li></ul><h2 id="高可用" tabindex="-1"><a class="header-anchor" href="#高可用"><span>高可用</span></a></h2><p><a class="route-link" href="/high-availability/high-availability-system-design.html">高可用系统设计指南</a></p><h3 id="冗余设计" tabindex="-1"><a class="header-anchor" href="#冗余设计"><span>冗余设计</span></a></h3><p><a class="route-link" href="/high-availability/redundancy.html">冗余设计详解</a></p><h3 id="限流" tabindex="-1"><a class="header-anchor" href="#限流"><span>限流</span></a></h3><p><a class="route-link" href="/high-availability/limit-request.html">服务限流详解</a></p><h3 id="降级-熔断" tabindex="-1"><a class="header-anchor" href="#降级-熔断"><span>降级&amp;熔断</span></a></h3><p><a class="route-link" href="/high-availability/fallback-and-circuit-breaker.html">降级&amp;熔断详解</a></p><h3 id="超时-重试" tabindex="-1"><a class="header-anchor" href="#超时-重试"><span>超时&amp;重试</span></a></h3><p><a class="route-link" href="/high-availability/timeout-and-retry.html">超时&amp;重试详解</a></p><h3 id="集群" tabindex="-1"><a class="header-anchor" href="#集群"><span>集群</span></a></h3><p>相同的服务部署多份，避免单点故障。</p><h3 id="灾备设计和异地多活" tabindex="-1"><a class="header-anchor" href="#灾备设计和异地多活"><span>灾备设计和异地多活</span></a></h3><p><strong>灾备</strong> = 容灾 + 备份。</p><ul><li><strong>备份</strong>：将系统所产生的的所有重要数据多备份几份。</li><li><strong>容灾</strong>：在异地建立两个完全相同的系统。当某个地方的系统突然挂掉，整个应用系统可以切换到另一个，这样系统就可以正常提供服务了。</li></ul><p><strong>异地多活</strong> 描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”，即所有站点都是同时在对外提供服务的。异地多活是为了应对突发状况比如火灾、地震等自然或者人为灾害。</p><h2 id="star-趋势" tabindex="-1"><a class="header-anchor" href="#star-趋势"><span>Star 趋势</span></a></h2><p><img src="https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&amp;type=Date" alt="Stars"></p><h2 id="公众号" tabindex="-1"><a class="header-anchor" href="#公众号"><span>公众号</span></a></h2><p>如果大家想要实时关注我更新的文章以及分享的干货的话，可以关注我的公众号“<strong>JavaGuide</strong>”。</p><p><img src="https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png" alt="JavaGuide 官方公众号"></p></div><!----><footer class="vp-page-meta"><div class="vp-meta-item edit-link"><a class="auto-link external-link vp-meta-label" href="https://github.com/Snailclimb/JavaGuide/edit/main/docs/home.md" aria-label="编辑此页" rel="noopener noreferrer" target="_blank"><!--[--><svg xmlns="http://www.w3.org/2000/svg" class="icon edit-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="edit icon" name="edit"><path d="M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"></path><path d="M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"></path></svg><!--]-->编辑此页<!----></a></div><div class="vp-meta-item git-info"><div class="update-time"><span class="vp-meta-label">上次编辑于: </span><span class="vp-meta-info" data-allow-mismatch="text">2024/9/20 11:02:27</span></div><div class="contributors"><span class="vp-meta-label">贡献者: </span><!--[--><!--[--><span class="vp-meta-info" title="email: koushuangbwcx@163.com">Guide</span>,<!--]--><!--[--><span class="vp-meta-info" title="email: tedlau@mail.nwpu.edu.cn">TedLau</span>,<!--]--><!--[--><span class="vp-meta-info" title="email: mister-hope@outlook.com">Mr.Hope</span>,<!--]--><!--[--><span class="vp-meta-info" title="email: koushuangbwcx@163.com">guide</span>,<!--]--><!--[--><span class="vp-meta-info" title="email: 30550035+MarkDcc@users.noreply.github.com">MarkDcc</span>,<!--]--><!--[--><span class="vp-meta-info" title="email: 952505116@qq.com">tiansc</span><!--]--><!--]--></div></div></footer><!----><!----><!----><!--]--></main><!--]--><!--]--><footer class="vp-footer-wrapper" vp-footer><div class="vp-footer"><a href="https://beian.miit.gov.cn/" target="_blank">鄂ICP备2020015769号-1</a></div><div class="vp-copyright">Copyright © 2024 Guide </div></footer></div><!--]--><!--]--><!--[--><!----><!--[--><!--]--><!--]--><!--]--></div>
    <script type="module" src="/assets/app-B418qBZ3.js" defer></script>
  </body>
</html>
